GeneralUpdate 入门实战手册
这篇手册面向第一次接触 GeneralUpdate 的开发者。目标不是一次讲完所有 API,而是让你从零开始,写完 Client → 写完 Upgrade → 用 Tools 生成配置 → 启动 Server → 一条命令跑通完整的"发现更新 → 下载 → 应用 → 回到新版本"闭环。
你将学到什么
完成这篇手册后,你会拥有一个可运行的端到端自动更新系统:一个能检查更新的 Client、一个能应用更新的 Upgrade、一份自动生成的 manifest、以及一个本地测试 Server。
更新流程总览
┌──────────────────────────────────────────────────────────────────────┐
│ GeneralUpdate 完整更新流程 │
└──────────────────────────────────────────────────────────────────────┘
① 版本检查 ② 下载包 ③ 应用更新
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Client │──POST──→ │ Server │ │ Upgrade │
│ (主程序) │←─JSON─── │ (更新服务)│ │ (升级进程) │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
│ POST /Upgrade/Verification │ │
│ {version, platform} │ │
│ ────────────────────→│ │
│ │ │
│ [{version, url, │ │
│ hash, size}] │ │
│ ←────────────────────│ │
│ │ │
│ GET /File/Download │ │
│ ────────────────────→│ │
│ │ │
│ .zip packages │ │
│ ←────────────────────│ │
│ │ │
│ [写入 IPC 加密契约] │ │
│ [启动 Upgrade.exe] │ │
│ ────────────────────────────────────────────→│
│ │ │
│ │ [读取 IPC 数据] │
│ │ [校验 Hash] │
│ │ [解压 → 覆盖] │
│ │ [启动新版本 Client] │
│ │ │
│ ←────────────────────────────────────────────│
│ [新版本运行中 ✓] │ │
│ │ │
| 角色 | 在项目中的位置 | 负责什么 |
|---|---|---|
| Client | MyApp.exe(你自己的主程序) | 检查更新 → 下载包 → 启动 Upgrade |
| Upgrade | MyApp.Upgrade.exe(独立的升级进程) | 校验 Hash → 解压覆盖 → 启动新版 Client |
| Server | GeneralUpdate-Samples/src/Server | 返回版本信息、接收更新报告、提供补丁下载 |
| Tools | GeneralUpdate.Tools | 生成 generalupdate.manifest.json,串联 Client 与 Upgrade |